package cn.kpi.dao.teamassessment;

import cn.kpi.common.persistence.MyBatisDao;

import cn.kpi.entity.teamassessment.BUAssTempCreateIndexEntity;
import cn.kpi.entity.teamassessment.BUAssTemplateEntity;
import cn.kpi.entity.teamassessment.BUAssTemplateIndexEntity;

import cn.kpi.entity.teamassessment.BUAssTemplateOrgEntity;
import cn.kpi.entity.usualassessment.OrgTitle;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;
import java.util.Map;

@MyBatisDao
public interface BUAssTemplateDao {
    public List<BUAssTemplateIndexEntity> GetTemplateIndexListRowSpan() throws Exception;

    public List<BUAssTemplateEntity> GetBuAssTemplateListByWhere(@Param("where") String where) throws Exception;

    public int GetBuAssTemplateListCountByWhere(@Param("where") String where) throws Exception;

    public List<BUAssTemplateIndexEntity> GetTemplateIndexListByWhere(@Param("where") String where) throws Exception;

    public BUAssTemplateIndexEntity GetIndexById(@Param("assindexid") Long assindexid) throws Exception;

    public List<BUAssTempCreateIndexEntity> GetIndexListByWhere(@Param("where") String where) throws Exception;

    public List<BUAssTempCreateIndexEntity> GetTemplateIndexBytemplateid(@Param("templateid") Long templateid) throws Exception;

    public int UpdateIndex(BUAssTemplateIndexEntity entity) throws Exception;

    public int InsertTemplateIndexentity(BUAssTemplateIndexEntity entity) throws Exception;

    public int UpdateParentscore(@Param("assindexid") Long assindexid, @Param("score") int score) throws Exception;

    public int DeleteIndex(@Param("assindexid") Long assindexid, @Param("parentid") Long parentid) throws Exception;

    public int DeleteUsTempEntity(Long templateid) throws Exception;

    public int DeleteUsTempCreateIndexEntity(Long templateid) throws Exception;

    public List<BUAssTemplateIndexEntity> GetTemplateIndexListRowSpanByTempId(@Param("templateid") Long templateid) throws Exception;

    public BUAssTemplateEntity GetUsAssTemplateListById(Long templateid) throws Exception;

    public int InsertTemplateEntity(BUAssTemplateEntity entity) throws Exception;

    public int InsertTempCreateIndexBatch(List<BUAssTempCreateIndexEntity> list) throws Exception;

    public int UpdateUsAssTempEntity(BUAssTemplateEntity entity) throws Exception;

     public List<Map> getSumScore(@Param("assindexids") String assindexid);
    public int InsertBuTempOrgBatch(@Param("templateid") Long templateid, @Param("list") List<Long> list) throws Exception;

    public int DeleteBuTempOrgBatch(@Param("templateid") Long templateid) throws Exception;

    public List<BUAssTemplateOrgEntity> GetTempOrgListByTempId(@Param("templateid") Long templateid);

    public List<BUAssTemplateOrgEntity> GetChooseOrgListByTempId(@Param("templateid") Long templateid);

    public int updateSubmit(@Param("templateid") Long templateid, @Param("issubmit") int issubmit);

    public List<BUAssTemplateEntity> getTemplateByBeginTime(@Param("begintime") Date begintime);

    public List<BUAssTemplateEntity> getTemplateByBeginTimes(@Param("begintime") String begintime);

    public int  addTitle(OrgTitle orgTitle);

    public void deleteTitle(@Param("where") String where);


    public List<Map> getTitle(@Param("where") String where);

}
